home *** CD-ROM | disk | FTP | other *** search
/ Video Cube: Space / Video Cube - Space (1994)(Aris).iso / setup.mst < prev    next >
Text File  |  1993-10-18  |  12KB  |  433 lines

  1. '**************************************************************************
  2. '                 Aris Entertainment Video Cube Setup
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'mscpydis.inc'    ''System
  7. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  8.  
  9. ''Dialog ID's
  10. CONST WELCOME     = 100
  11. CONST ASKQUIT     = 200
  12. CONST DESTPATH    = 300
  13. CONST EXITFAILURE = 400
  14. CONST EXITQUIT    = 600
  15. CONST EXITSUCCESS = 700
  16. CONST APPHELP     = 900
  17. CONST RESTART     = 1000
  18. CONST CUSTINST    = 6200
  19. CONST TOOBIG      = 6300
  20. CONST BADPATH     = 6400
  21.  
  22. '' window sizing
  23. CONST WS_VISIBLE       = &H10000000
  24. CONST WS_CAPTION       = &H00C00000 
  25. CONST WS_CLIPCHILDREN  = &H02000000
  26. CONST WS_SYSMENU       = &H00080000
  27. CONST WS_MINIMIZEBOX   = &H00020000
  28. CONST WS_MAXIMIZEBOX   = &H00010000
  29. CONST WS_THICKFRAME        = &H00040000
  30. CONST GWL_STYLE        = -16
  31. CONST SW_SHOWMAXIMIZED = 3
  32.  
  33. '' File set to copy
  34. CONST FILEN1 = 1
  35. CONST FILEN2 = 2
  36. CONST FILEN3 = 3
  37. CONST FILEN4 = 4
  38. CONST FILEN5 = 5
  39.  
  40. ''Bitmap ID
  41. CONST LOGO = 1
  42. '' Aris Bitmap
  43. '' CONST ARIS = 2
  44.  
  45. '' File set symbol names
  46. GLOBAL NEEDS1$ 
  47. GLOBAL NEEDS2$ 
  48. GLOBAL NEEDS3$ 
  49. GLOBAL NEEDS4$ 
  50. GLOBAL NEEDS5$ 
  51. GLOBAL EXTRACOSTS$  
  52. GLOBAL BIGLIST$     
  53.  
  54.  
  55. GLOBAL DRIVETEXT$
  56. GLOBAL V3DEST$      
  57. GLOBAL WINDRIVE$    
  58. GLOBAL GROUP$           
  59. GLOBAL ITEM$            
  60. GLOBAL EXE$                     
  61. GLOBAL SRCDIR$ 
  62. GLOBAL WINDIR$ 
  63. GLOBAL WINSYSDIR$
  64. GLOBAL SETUPDIR$
  65.  
  66. DECLARE SUB AddOptFilesToCopyList (ftype%)
  67. DECLARE SUB RecalcOptFiles (ftype%)
  68. DECLARE SUB RecalcPath
  69. DECLARE SUB SetDriveStatus
  70. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  71. DECLARE FUNCTION ShowWindow LIB  "user.exe" (hWnd%, iShow%) AS INTEGER
  72. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  73. REM DECLARE FUNCTION GetCDDrive LIB "CDTSTV3.DLL" AS INTEGER
  74. REM DECLARE FUNCTION ReadDiscStart LIB "CDTSTV3.DLL" (Drive%) AS LONG
  75. REM DECLARE FUNCTION ReadDiscEnd LIB "CDTSTV3.DLL" (Drive%) AS LONG
  76. REM DECLARE FUNCTION TestMPCThrough LIB "CDTSTV3.DLL" (Drive%, First&, Last&) AS LONG
  77.  
  78. INIT:
  79.  
  80.     CUIDLL$   = "mscuistf.dll"          ''Custom user interface dll
  81.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  82.  
  83.     '' Initialize window
  84.     hWnd% = HwndFrame()
  85.     k&    = SetWindowLong(hWnd%, GWL_STYLE, WS_CAPTION+WS_VISIBLE+WS_CLIPCHILDREN+WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_THICKFRAME)
  86.     j%    = ShowWindow(hWnd%, SW_SHOWMAXIMIZED)                                            
  87.  
  88.     '' Check Windows Version Number
  89.     MajorVer% = GetWindowsMajorVersion()
  90.     MinorVer% = GetWindowsMinorVersion()
  91.  
  92.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  93.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  94.     END
  95.     END IF
  96.                                                
  97.     SetBitmap CUIDLL$, LOGO
  98.     SetTitle "Aris Entertainment Video Cube"
  99.  
  100.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  101.     IF szInf$ = "" THEN
  102.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  103.     END IF
  104.  
  105.     ReadInfFile szInf$
  106.  
  107.     SRCDIR$    = GetSymbolValue("STF_SRCDIR")
  108.     WINDIR$    = GetWindowsDir()
  109.     WINSYSDIR$ = GetWindowsSysDir()
  110.     WINDRIVE$  = MID$(WINDIR$, 1, 1)
  111.     V3DEST$    = WINDRIVE$ + ":\V3"
  112.     EXE$       = "V3.EXE"
  113.     GROUP$     = "Aris"
  114.     ITEM$      = "Video Cube"
  115.     SETUPDIR$  = WINDRIVE$ + ":\~msstfqf.t"
  116.  
  117.     '' list symbols
  118.     DRIVETEXT$   = "DriveStatusText"
  119.  
  120.     FOR i% = 1 TO 3 STEP 1
  121.     AddListItem DRIVETEXT$, ""
  122.     NEXT i%
  123.  
  124.     ReplaceListItem DRIVETEXT$, 3, V3DEST$
  125.  
  126.     ''Disk cost list symbols
  127.     NEEDS1$     = "FileNeeds1"
  128.     NEEDS2$     = "FileNeeds2"
  129.     NEEDS3$     = "FileNeeds3"
  130.     NEEDS4$     = "FileNeeds4"
  131.     NEEDS5$     = "FileNeeds5"
  132.     EXTRACOSTS$ = "ExtraCosts"
  133.     BIGLIST$    = "BigList"
  134.  
  135.     FOR i% = 1 TO 5 STEP 1
  136.     AddListItem BIGLIST$, ""
  137.     NEXT i%
  138.     FOR i% = 1 TO 26 STEP 1
  139.     AddListItem EXTRACOSTS$, "0"
  140.     NEXT i%
  141.  
  142.     SetRestartDir SETUPDIR$
  143.     RecalcPath
  144.     SetDriveStatus
  145.  
  146. WELCOME:
  147.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  148.     IF sz$ = "CONTINUE" THEN
  149.     UIPop 1
  150.     ELSE
  151.     GOSUB ASKQUIT
  152.     GOTO WELCOME
  153.     END IF
  154.  
  155. REM CHECKCDROM:
  156. REM         CDDrive% = GetCDDrive()
  157. REM        IF CDDrive% = -1 THEN
  158. REM                i% = DoMsgBox("CD-ROM drive not found", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  159. REM                END
  160. REM     ELSE
  161. REM                     First& = ReadDiscStart(CDDrive%)
  162. REM                     IF First& = 0 THEN
  163. REM                              i% = DoMsgBox("First "+STR$(First&/1024), "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  164. REM                     END IF
  165. REM                     Last& = ReadDiscEnd(CDDrive%)
  166. REM                     if Last& = 0 THEN
  167. REM                              i% = DoMsgBox("Last "+STR$(Last&/1024), "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  168. REM                     END IF
  169. REM                     Passed& = TestMPCThrough( CDDrive%, First&, Last&)
  170. REM                     IF (Passed&>0) THEN
  171. REM                             i% = DoMsgBox("CD-ROM drive Not-MPC Compliant, You may experience performance problems " + STR$(Passed&/rformance problems " + STR$(Passed&/1024), "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  172. REM             END IF
  173. REM        END IF
  174.  
  175. CUSTINST:
  176.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  177.     IF sz$ = "CONTINUE" THEN
  178.     ''Install only if it will fit.
  179.     FOR i% = 1 TO 5 STEP 1
  180.         IF GetListItem(BIGLIST$, i%) <> "" THEN
  181.         GOSUB TOOBIG
  182.         GOTO CUSTINST
  183.         END IF
  184.     NEXT i%
  185.     UIPop 1
  186.     GOTO INSTALL    
  187.     ELSEIF sz$ = "PATH" THEN        
  188.     GOTO GETPATH        
  189.     ELSEIF sz$ = "REACTIVATE" THEN        
  190.     RecalcPath
  191.     SetDriveStatus
  192.     GOTO CUSTINST
  193.     ELSE
  194.     GOSUB ASKQUIT
  195.     GOTO CUSTINST        
  196.     END IF        
  197.     
  198. INSTALL:
  199.     ClearCopyList
  200.  
  201.     AddOptFilesToCopyList FILEN1
  202.     AddOptFilesToCopyList FILEN2
  203.     AddOptFilesToCopyList FILEN3
  204.     AddOptFilesToCopyList FILEN4
  205.     AddOptFilesToCopyList FILEN5
  206.  
  207.     CreateDir V3DEST$, cmoNone
  208.     CopyFilesInCopyList
  209.  
  210.     CreateIniKeyValue "WIN.INI",              "fonts",          "Future",    "FUTURE.FOT", cmoOverwrite
  211.     CreateIniKeyValue "WIN.INI",              "mci extensions", "avi",       "AVIVideo",   cmoOverwrite
  212.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers",        "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  213.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers",        "VIDC.RT21", "indeo.drv",  cmoOverwrite
  214.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers",        "VIDC.CVID", "iccvid.drv", cmoOverwrite
  215.     CreateIniKeyValue WINDIR$ + "system.ini", "mci",            "AVIVideo",  "mciavi.drv", cmoOverwrite
  216.  
  217.     '' Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  218.  
  219.     CreateProgmanGroup GROUP$, "", cmoNone
  220.     CreateProgmanItem GROUP$, ITEM$, MakePath(V3DEST$, EXE$), "", cmoOverwrite
  221.  
  222.     Run ("profdisp")
  223.  
  224. QUIT:
  225.     ON ERROR GOTO ERRQUIT
  226.     IF ERR = 0 THEN
  227.        dlg% = EXITSUCCESS
  228.     ELSEIF ERR = STFQUIT THEN
  229.     dlg% = EXITQUIT
  230.     ELSE
  231.     dlg% = EXITFAILURE
  232.     END IF
  233.  
  234. QUITL1:
  235.  
  236. ''    Aris Bitmap
  237. ''    SetBitmap CUIDLL$, ARIS
  238.  
  239.     n% = RestartListEmpty()
  240.  
  241.     IF n% = 1 THEN
  242.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  243.     IF sz$ = "REACTIVATE" THEN
  244.         GOTO QUITL1
  245.     ELSEIF sz$ = "BACK" THEN
  246.         Run MakePath(V3DEST$, EXE$), NOWAIT 
  247.     END IF
  248.     ELSE
  249.     dlg% = RESTART
  250.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  251.     n% = ExitExecRestart()
  252.     END IF
  253.  
  254.     UIPop 1
  255.     END
  256.  
  257. ERRQUIT:
  258.     i% = DoMsgBox("Setup sources were corrupted, call (310) 821-0234!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  259.     END
  260.  
  261.  
  262. ASKQUIT:
  263.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  264.     IF sz$ = "EXIT" THEN
  265.     UIPopAll
  266. ''        ERROR STFQUIT
  267.     END
  268.     ELSEIF sz$ = "REACTIVATE" THEN
  269.     GOTO ASKQUIT
  270.     ELSE
  271.     UIPop 1
  272.     END IF
  273.     RETURN
  274.  
  275. TOOBIG:
  276.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  277.     IF sz$ = "REACTIVATE" THEN
  278.     GOTO TOOBIG
  279.     END IF
  280.     UIPop 1
  281.     RETURN
  282.  
  283.  
  284. BADPATH:
  285.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  286.     IF sz$ = "REACTIVATE" THEN
  287.     GOTO BADPATH
  288.     END IF
  289.     UIPop 1
  290.     RETURN
  291.  
  292.  
  293. GETPATH:
  294.     SetSymbolValue "EditTextIn", V3DEST$
  295.     SetSymbolValue "EditFocus", "END"
  296. GETPATHL1:
  297.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  298.     IF sz$ = "CONTINUE" THEN
  299.     olddest$ = V3DEST$
  300.     V3DEST$ = GetSymbolValue("EditTextOut")
  301.  
  302.     ''Validate new path.
  303.     IF IsDirWritable(V3DEST$) = 0 THEN
  304.         GOSUB BADPATH
  305.         GOTO GETPATHL1
  306.     END IF
  307.     UIPop 1
  308.  
  309.     ''Truncate display if too long.
  310.     IF LEN(V3DEST$) > 23 THEN
  311.         ReplaceListItem DRIVETEXT$, 3, MID$(V3DEST$, 1, 23)+"..."
  312.     ELSE
  313.         ReplaceListItem DRIVETEXT$, 3, V3DEST$
  314.     END IF
  315.  
  316.     ''Recalc if path changed.
  317.     IF (olddest$ <> V3DEST$) AND (olddest$ <> V3DEST$+"\") AND (olddest$+"\" <> V3DEST$) THEN
  318.         RecalcPath
  319.         SetDriveStatus
  320.     END IF
  321.  
  322.     olddest$ = ""
  323.     GOTO CUSTINST
  324.     ELSEIF sz$ = "REACTIVATE" THEN
  325.     RecalcPath
  326.     SetDriveStatus
  327.     GOTO GETPATHL1
  328.     ELSEIF sz$ = "EXIT" THEN
  329.     GOSUB ASKQUIT
  330.     GOTO GETPATHL1
  331.     ELSE
  332.     UIPop 1
  333.     GOTO CUSTINST
  334.     END IF
  335.  
  336.  
  337. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  338.     IF szDir$ = "" THEN
  339.     MakePath = szFile$
  340.     ELSEIF szFile$ = "" THEN
  341.     MakePath = szDir$
  342.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  343.     MakePath = szDir$ + szFile$
  344.     ELSE
  345.     MakePath = szDir$ + "\" + szFile$
  346.     END IF
  347. END FUNCTION
  348.  
  349. SUB AddOptFilesToCopyList (ftype%) STATIC
  350.     IF ftype% = FILEN1 THEN
  351.     AddSectionFilesToCopyList "AVICodecs",   SRCDIR$, WinSysDir$
  352.     ELSEIF ftype% = FILEN2 THEN
  353.     AddSectionFilesToCopyList "MPlayer",     SRCDIR$, WinDir$
  354.     ELSEIF ftype% = FILEN3 THEN
  355.     AddSectionFilesToCopyList "VfW Runtime", SRCDIR$, WinSysDir$
  356.     ELSEIF ftype% = FILEN4 THEN
  357.     AddSectionFilesToCopyList "V3EXE",       SRCDIR$, V3DEST$
  358.     ELSEIF ftype% = FILEN5 THEN
  359.     AddSectionFilesToCopyList "FontFiles",   SRCDIR$, WinSysDir$
  360.     END IF
  361. END SUB
  362.  
  363. SUB RecalcOptFiles (ftype%) STATIC
  364.  
  365.     CursorSave% = ShowWaitCursor()
  366.     ClearCopyList
  367.     AddOptFilesToCopyList ftype%
  368.     fExtra% = 0
  369.     IF ftype% = FILEN1 THEN
  370.     ListSym$ = NEEDS1$
  371.     ELSEIF ftype% = FILEN2 THEN
  372.     ListSym$ = NEEDS2$
  373.     ELSEIF ftype% = FILEN3 THEN
  374.     ListSym$ = NEEDS3$
  375.     ELSEIF ftype% = FILEN4 THEN
  376.     ListSym$ = NEEDS4$
  377.     ELSEIF ftype% = FILEN5 THEN
  378.     ListSym$ = NEEDS5$
  379.     END IF
  380.  
  381.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  382.   
  383.     cost& = 0
  384.     FOR i% = 1 TO 26 STEP 1
  385.     cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  386.     NEXT i%
  387.  
  388.     IF StillNeed& > 0 THEN
  389.     ReplaceListItem BIGLIST$, ftype%, "YES"
  390.     ELSE
  391.     ReplaceListItem BIGLIST$, ftype%, ""
  392.     END IF
  393.  
  394.     IF fExtra% THEN
  395.     ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  396.     END IF
  397.  
  398.     RestoreCursor CursorSave%
  399.     ListSym$ = ""
  400. END SUB
  401.  
  402.  
  403. SUB RecalcPath STATIC
  404.  
  405.     CursorSave% = ShowWaitCursor()
  406.  
  407.     RecalcOptFiles FILEN1
  408.     RecalcOptFiles FILEN2
  409.     RecalcOptFiles FILEN3
  410.     RecalcOptFiles FILEN4
  411.     RecalcOptFiles FILEN5
  412.  
  413.     RestoreCursor CursorSave%
  414. END SUB
  415.  
  416.  
  417. SUB SetDriveStatus STATIC
  418.  
  419.     drive$ = MID$(WINDIR$, 1, 1)
  420.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  421.  
  422.     drive2$ = MID$(V3DEST$, 1, 1)
  423.     ndrive2% = ASC(ucase$(drive2$)) - ASC("A") + 1
  424.  
  425.     cost& = VAL(GetListItem(NEEDS1$,ndrive%))+VAL(GetListItem(NEEDS2$,ndrive%))+VAL(GetListItem(NEEDS3$,ndrive%))+VAL(GetListItem(NEEDS4$, ndrive2%))+VAL(GetListItem(NEEDS5$, ndrive%))
  426.     free& = GetFreeSpaceForDrive(drive$)
  427.  
  428.     ReplaceListItem DRIVETEXT$, 1, STR$(cost& / 1024) + " K"
  429.     ReplaceListItem DRIVETEXT$, 2, STR$(free& / 1024) + " K"
  430. END SUB
  431.  
  432. REM End Of File
  433.